/*
*********************************************************************************************************
*
* 模块名称 :    bsp中间件层
* 文件名称 :    cicular_fifo.h
* 版    本 :    V1.0
* 说    明 :    抽象数据结构，循环队列类
*
* 修改记录 :
*   版本号  日期      作者      说明
*   V1.0    2025-2-18 miaozi    正式发布
*
*
*
*********************************************************************************************************
*/

//  环形缓冲区结构体
typedef struct  __PACKED
{
    float32_t *data;            //  数据存储区,浮点型32位
    uint16_t buf_cnt;           //  环形缓冲区数据个数
    uint16_t data_cnt;           //  环形缓冲区数据个数
    uint16_t head;              //  写指针
    uint16_t tail;              //  读指针
} CircularFifo_F32_T;


void  FIFO_F32_Init(CircularFifo_F32_T *buffer);                           //  初始化环形缓冲区
uint8_t  FIFO_F32_Write(CircularFifo_F32_T *buffer,float32_t data);          //  向环形缓冲区写入数据
uint8_t  FIFO_F32_Read(CircularFifo_F32_T      *buffer,float32_t *data);     //  从环形缓冲区读取数据
uint8_t  FIFO_F32_IsEmpty(CircularFifo_F32_T *buffer);                     //  判断环形缓冲区是否为空
uint8_t  FIFO_F32_IsFull(CircularFifo_F32_T *buffer);                      //  判断环形缓冲区是否已满
uint8_t  FIFO_F32_LengthGet(CircularFifo_F32_T *buffer);                   //  判断尾部与头部之间的差距
uint8_t  FIFO_F32_FastWrite(CircularFifo_F32_T *buffer, float32_t data);     //  FIFO速写
/***************************** LinkJoin(END OF FILE) *********************************/
